Autores: Davi Augusto e João Arend.
Analisar os jogadores da NBA.
O intuito inicial de nossa pesquisa era analisar o desempenho e impacto dos jogadores de basquete ao longo das últimas duas décadas (1996-2021), buscando compreender as mudanças nas tendências em relação às evoluções na filosofia do jogo e nas estratégias de desenvolvimento. Contudo, à medida que adquirimos e examinamos os dados, as médias e o desempenho de LeBron James emergiram com destaque, capturando nossa atenção de forma marcante.
Diante das evidências do impacto extraordinário de LeBron James no esporte, decidimos expandir nossa análise. Além de avaliar o desempenho e impacto dos demais jogadores, nos dedicamos a compará-los com a grandiosidade de LeBron James, reconhecido estatisticamente como um dos maiores jogadores de todos os tempos. Essa nova abordagem enriqueceu significativamente nossas descobertas e proporcionou uma perspectiva mais completa sobre as trajetórias de carreira dos jogadores ao longo dessas últimas duas décadas.
O conjunto de dados contém mais de duas décadas de informações sobre cada jogador que fez parte do elenco de equipes da NBA. Ele inclui variáveis demográficas como idade, altura, peso e local de nascimento, detalhes biográficos como o time em que jogou, ano e rodada do draft. Além disso, possui estatísticas básicas de pontuação, como número médio de jogos disputados, pontos, rebotes, assistências, etc.
Tipos de variáveis encontradas no banco de dados: player_name: qualitativa nominal
team_abbreviation: qualitativa nominal
age: quantitativa continua
player_height: quantitativa continua
player_weight: quantitativa continua
college: qualitativa nominal
country: qualitativa nominal
draft_year: quantitativa continua
draft_round: quantitativa discreta
draft_number: quantitativa discreta
gp: quantitativa discreta
pts: quantitativa continua
reb: quantitativa continua
ast: quantitativa continua
net_rating: quantitativa continua
oreb_pct: quantitativa continua
dreb_pct: quantitativa continua
usg_pct: quantitativa continua
ts_pct: quantitativa continua
ast_pct: quantitativa continua
season: quantitativa continua
Esta parte do código esta sendo utilizada e reservada para organização de variáveis como a criação de novas para o intuito de pesquisa e utilização do dataset para as análises
## Realizando as mudanças necessárias
# retirando a primeira coluna que serve de numeração para ID
nba_dataset <- nba_dataset[, -1]
## Adicionando uma nova coluna 'year' extraindo o ano da coluna 'season'.
nba_dataset$year <- as.integer(substring(nba_dataset$season, 1, 4))
## Novas colunas <- jogos jogados * média de pontos/rebotes/assist
nba_dataset <- nba_dataset %>%
mutate(pts_gp = as.integer(gp * pts),
reb_gp = as.integer(gp * reb),
ast_gp = as.integer(gp * ast))
# Soma os stats de todas as temporadas por jogador
nba_dataset <- nba_dataset %>%
group_by(player_name) %>%
mutate(total_pts = cumsum(pts_gp),
total_reb = cumsum(reb_gp),
total_ast = cumsum(ast_gp),
total_gp = cumsum(gp),
total_pts_gp = total_pts/total_gp,
total_reb_gp = total_reb/total_gp,
total_ast_gp = total_ast/total_gp)
# Número dos top pontuadores da NBA
NumTopScorers <- 10
# Calcula a soma de pontos para cada jogador e ordena o resultado em ordem decrescente.
top_scorers <- nba_dataset %>%
arrange(desc(total_pts)) %>%
distinct(player_name, .keep_all = TRUE) %>%
group_by(player_name) %>%
filter(row_number(desc(total_pts)) == 1)
Tabela dos top 10 maiores pontuadores da NBA de 1996-2022:
| Nome | Idade | Número de Jogos | Pontos | Pontos/Jogo | Rebotes | Assist | Última Temporada |
|---|---|---|---|---|---|---|---|
| LeBron James | 37 | 1366 | 37052 | 27.12445 | 10193 | 10035 | 2021-22 |
| Kobe Bryant | 37 | 1346 | 33626 | 24.98217 | 7043 | 6311 | 2015-16 |
| Dirk Nowitzki | 41 | 1522 | 31553 | 20.73127 | 11473 | 3659 | 2018-19 |
| Carmelo Anthony | 38 | 1260 | 28277 | 22.44206 | 7801 | 3430 | 2021-22 |
| Tim Duncan | 40 | 1392 | 26492 | 19.03161 | 15075 | 4230 | 2015-16 |
| Paul Pierce | 39 | 1343 | 26406 | 19.66195 | 7507 | 4694 | 2016-17 |
| Vince Carter | 43 | 1541 | 25714 | 16.68657 | 6603 | 4696 | 2019-20 |
| Kevin Durant | 33 | 939 | 25519 | 27.17678 | 6650 | 4028 | 2021-22 |
| Kevin Garnett | 40 | 1382 | 25231 | 18.25687 | 14136 | 5291 | 2015-16 |
| Ray Allen | 38 | 1300 | 24488 | 18.83692 | 5258 | 4366 | 2013-14 |
Tabela dos jogadores com maior razão de pontos por jogo:
| Nome | Idade | Número de Jogos | Pontos | Pontos/Jogo | Rebotes | Assist | Última Temporada |
|---|---|---|---|---|---|---|---|
| Kevin Durant | 33 | 939 | 25519 | 27.17678 | 6650 | 4028 | 2021-22 |
| LeBron James | 37 | 1366 | 37052 | 27.12445 | 10193 | 10035 | 2021-22 |
| Allen Iverson | 35 | 914 | 24376 | 26.66958 | 3388 | 5619 | 2009-10 |
| Luka Doncic | 23 | 264 | 6956 | 26.34848 | 2253 | 2100 | 2021-22 |
| Joel Embiid | 28 | 328 | 8534 | 26.01829 | 3730 | 1082 | 2021-22 |
| Zion Williamson | 20 | 85 | 2187 | 25.72941 | 590 | 275 | 2020-21 |
| Michael Jordan | 40 | 306 | 7794 | 25.47059 | 1800 | 1262 | 2002-03 |
| Trae Young | 23 | 280 | 7074 | 25.26429 | 1083 | 2543 | 2021-22 |
| Kobe Bryant | 37 | 1346 | 33626 | 24.98217 | 7043 | 6311 | 2015-16 |
| James Harden | 32 | 942 | 23468 | 24.91295 | 5290 | 6395 | 2021-22 |
#
ggplot(top_scorers, aes(x = total_pts_gp)) +
geom_histogram(binwidth = 0.5 , fill = "#17408B", alpha = 0.7) +
labs(title = "Distribuição média pontos por jogo",
x = "Pontos por jogo",
y = "Frequência (Nº) Jogadores")
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 0.000 2.767 5.067 6.230 8.373 27.177
Na curiosidade de descobrir quem é o jogador com o maior total de pontos da liga no período de 1996-2021 me veio a idéia “pontuar, legal, mas e quanto as outras qualidades?” Então fizemos este gráfico com o intuito de mostrar o quão aparente são as outras qualidades destes grandes pontuadores
# Especificando o nome para as colunas de eixo_x e y, bubble size e texto
x_axis <- 'total_ast'
y_axis <- 'total_reb'
bubble_column <- 'name'
size_column <- 'total_pts'
text_column <- "player_name"
# Criando os plots utilizandoo bubblechart
figure <- plot_ly(data = head(top_scorers, NumTopScorers),
x = ~get(x_axis),
y = ~get(y_axis),
text = ~paste(get(text_column)),
marker = list(size = ~get(size_column) * 0.002, opacity = 0.2, color = '#17408B'),
type = "scatter",
mode = "markers",
hoverinfo = "marker",
textfont = list(size = 10))
# Seta os eixos e os bar titles
figure <- figure %>%
layout(xaxis = list(title = "Total de Assistências"),
yaxis = list(title = "Total de Rebotes"),
title = "Assistências e Rebotes dos maiores pontuadores da liga")
# Mostar o plot
figure
# Especificando o nome para as colunas de eixo_x e y, bubble size e texto
x_axis <- 'total_ast'
y_axis <- 'total_pts'
bubble_column <- 'name'
size_column <- 'total_reb'
text_column <- "player_name"
# Criando os plots utilizandoo bubblechart
figure <- plot_ly(data = top_scorers,
x = ~get(x_axis),
y = ~get(y_axis),
text = ~paste(get(text_column)),
marker = list(size = ~get(size_column) * 0.02, opacity = 0.2, color = '#17408B'),
type = "scatter",
mode = "markers",
size = ~get(y_axis))
# Seta os eixos e os bar titles
figure <- figure %>%
layout(xaxis = list(title = "Total de Assistências"),
yaxis = list(title = "Total de Pontos"),
title = "Pontos e Assistências dos maiores pontuadores da liga")
# Mostar o plot
figure
Ao notar o grande equilibrio e certo destaque do nosso grande pontuador LeBron James foi natural que comparássemos suas médias com as de outros jogadores presentes no top 10 pontuadores, então, foi realizada a média dos top 3 maiores jogadores da tabela no caso: LeBron James, Kobre Bryant e Dirk Nowitzki.
#out.width = "70%"
# Filtrando banco por jogadores
lebron_data <- subset(nba_dataset, player_name == "LeBron James")
kobe_data <- subset(nba_dataset, player_name == "Kobe Bryant")
dirk_data <- subset(nba_dataset, player_name == "Dirk Nowitzki")
#################
### GRÁFICO 1 ###
#################
#Médias LeBron
lebron_averages <- ggplot(lebron_data, aes(x = year)) +
geom_line(aes(y = pts, color = "Points"), linewidth = 1.5) +
geom_line(aes(y = reb, color = "Rebounds"), linewidth = 1.5) +
geom_line(aes(y = ast, color = "Assists"), linewidth = 1.5) +
labs(title = "LeBron James Média-Pontos Por Temporada",
x = "Temporadas(anos)",
y = "Médias",
color = "Stats") +
theme_minimal() +
scale_color_manual(values = c("Points" = "lightblue",
"Rebounds" = "orange",
"Assists" = "lightgreen")) +
expand_limits(y=c(0,40))
#################
### GRÁFICO 2 ###
#################
# Médias Kobe
kobe_averanges <- ggplot(kobe_data, aes(x = year)) +
geom_line(aes(y = pts, color = "Points"), linewidth = 1.5) +
geom_line(aes(y = reb, color = "Rebounds"), linewidth = 1.5) +
geom_line(aes(y = ast, color = "Assists"), linewidth = 1.5) +
labs(title = "Kobe Bryant Média-Pontos Por Temporada",
x = "Temporadas(anos)",
y = "Médias",
color = "Stats") +
theme_minimal() +
scale_color_manual(values = c("Points" = "lightblue",
"Rebounds" = "orange",
"Assists" = "lightgreen")) +
expand_limits(y=c(0,40))
#################
### GRÁFICO 3 ###
#################
# Médias Dirk
dirk_averages <- ggplot(dirk_data, aes(x = year)) +
geom_line(aes(y = pts, color = "Points"), linewidth = 1.5) +
geom_line(aes(y = reb, color = "Rebounds"), linewidth = 1.5) +
geom_line(aes(y = ast, color = "Assists"), linewidth = 1.5) +
labs(title = "Dirk Nowitzki Média-Pontos Por Temporada",
x = "Temporadas(anos)",
y = "Médias",
color = "Stats") +
theme_minimal() +
scale_color_manual(values = c("Points" = "lightblue",
"Rebounds" = "orange",
"Assists" = "lightgreen")) +
expand_limits(y=c(0,40))
Em suma, nossa pesquisa analítica nos permitiu uma jornada fascinante pelo mundo do basquete nas últimas duas décadas (1996-2021). Ao investigarmos o desempenho e o impacto dos jogadores, inicialmente focados nas tendências de idade, altura e peso, nos deparamos com uma verdadeira lenda do esporte: LeBron James.
Com base em análises minuciosas de dados e estatísticas, fica claro que LeBron James é, inquestionavelmente, o jogador matematicamente mais forte e dominante da liga nesse período. Suas médias impressionantes, tanto em estatísticas individuais quanto em contribuições para a equipe, revelam a magnitude de seu talento e a influência que exerceu no jogo.
Ao compararmos suas proezas com outros jogadores notáveis, não há dúvida de que LeBron James se destaca como uma figura lendária, cujo impacto transcende os números e os títulos conquistados. Sua presença em quadra é verdadeiramente incomparável, redefinindo os padrões de excelência e servindo de inspiração para gerações futuras de atletas.
Decidimos trazer uma curiosidade em relação ao mundo do basquete e da NBA, que se trata das faculdades que mais ingressaram alunos na NBA e o numero de jogadores não matriculados em faculdades.
A parte mais curiosa dessa pesquisa é o fato de que LeBron James nunca ingressou em nenhuma faculdade em sua vida dedicando-se apenas ao basquete, o que nos mostra que não necessario uma faculdade para ter sucesso na carreira do basquete apenas trabalho duro e dedicação.
dados_Faculdade<-data.frame(Faculdade=c("com faculdade", "sem faculdade"),
Comparação=c(2118,345)
)
ggplot(dados_Faculdade,aes(x = Faculdade, y = Comparação,fill=Faculdade)) +
geom_bar(stat = "identity") +
labs(x = "matriculados/n matriculados", y = "Quantidade de Jogadores", title = "Quantidade de Jogadores matriculados na faculdade")+
scale_fill_manual(values = c("#EE4444","#70FFDB"))
dados<-data.frame(faculdades=c("ucla","syracuse","n.carolina","michigan.stt", "michigan","kentuky","kansas","georgia.tech","arizona","duke"),
quant_jogadores=c(50,35,49,35,37,74,50,32,46,60)
)
ggplot(dados, aes(x = reorder(faculdades, -quant_jogadores), y = quant_jogadores,fill=faculdades)) +
geom_bar(stat = "identity") +
labs(x = "Faculdade", y = "Quantidade de Jogadores", title = "Quantidade de Jogadores de Basquete por Faculdade") +
scale_fill_manual(values = c("red","orange","yellow","green","chartreuse","purple","magenta","pink","blue","cyan"))+
theme(axis.text.x = element_text(angle = 45, hjust = 1))